package Offer;

/**
 * 二进制中1的个数
 *
 * @author 是阿秋啊
 * @date 2022/04/19 18:19
 **/
public class Num15 {
    // 方法一 ，进位
    public int hammingWeight(int n) {
        int count = 0;
        int b = n;
        // 因为是无符号，所以有可能是负数
        // 不能>0
        while (b != 0) {
            if ((b & 1) == 1) count++;
            // w无符号右移一位>>>
            b >>>= 1;
        }
        return count;
    }

    public int hammingWeight1(int n) {
        int res = 0;
        while (n != 0) {
            res++;
            n = n & (n - 1);
        }
        return res;
    }
}
